#include<bits/stdc++.h>
#define mp make_pair
using namespace std;
inline int read(){
    int x=0,f=1;char ch=getchar();
    while(!isdigit(ch)){if(ch=='-') f=-1;ch=getchar();}
    while(isdigit(ch)) x=x*10+(ch^48),ch=getchar();
    return x*f;
}
const int N=2005;
int n,m,q;
int a[N][N];
int b[N][N],vis[N][N];
pair<int,int> fa[N][N];
int fx[4]={1,-1,0,0},fy[4]={0,0,1,-1};
bool pd(pair<int,int> u,int x1,int y1,int x2,int y2){
    int x=u.first,y=u.second;
    return x1<=x&&x<=x2&&y1<=y&&y<=y2;
}
void dfs(int x,int y){
    vis[x][y]=1;
    for(int i=0;i<4;i++){
        int tx=x+fx[i],ty=y+fy[i];
        if(a[tx][ty]!=1||mp(tx,ty)==fa[x][y]) continue;
        if(!pd(mp(tx,ty),1,1,n,m)) continue;
        fa[tx][ty]={x,y};
        dfs(tx,ty);
    }
}
int main(){
    freopen("unicom.in","r",stdin);
    freopen("unicom.out","w",stdout);
    n=read(),m=read(),q=read();
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            char c;
            cin>>c;
            a[i][j]=c=='1';
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            if(a[i][j]&&!vis[i][j]){
                fa[i][j]={i,j};
                dfs(i,j);
                b[i][j]++;
            }
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            b[i][j]+=b[i][j-1];
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            b[i][j]+=b[i-1][j];
        }
    }
    while(q--){
        int x1=read(),y1=read(),x2=read(),y2=read();
        int ans=b[x2][y2]-b[x1-1][y2]-b[x2][y1-1]+b[x1-1][y1-1];
        if(x1==x2){
            for(int i=y1;i<=y2;i++){
                if(a[x1][i]&&!pd(fa[x1][i],x1,y1,x2,y2)) ans++;
            }
        }
        else if(y1==y2){
            for(int i=x1;i<=x2;i++){
                if(a[i][y1]&&!pd(fa[i][y1],x1,y1,x2,y2)) ans++;
            }
        }
        else{
            for(int i=x1;i<x2;i++){
                if(a[i][y1]&&!pd(fa[i][y1],x1,y1,x2,y2)) ans++;
            }
            for(int i=y1;i<y2;i++){
                if(a[x2][i]&&!pd(fa[x2][i],x1,y1,x2,y2)) ans++;
            }
            for(int i=x2;i>x1;i--){
                if(a[i][y2]&&!pd(fa[i][y2],x1,y1,x2,y2)) ans++;
            }
            for(int i=y2;i>y1;i--){
                if(a[x1][i]&&!pd(fa[x1][i],x1,y1,x2,y2)) ans++;
            }
        }
        cout<<ans<<"\n";
    }
    return 0;
}